#pragma once

#include <map>

#include "ktypes.h"
#include "kconfig.h"

typedef std::map<k_string, KType> symtbl_t;

class SymbolTable
{
private:
	symtbl_t table;

public:
	void AddSymbol(const k_string &ident, KType type, k_uint ln);
	void RemoveSymbol(const k_string &ident, k_uint ln);
	void HasSymbol(const k_string &ident, k_uint ln);
	void CleanUp();
	KType GetSymbolType(const k_string &ident, k_uint ln) const;
};
